package com.ruoyi.ldzlsc.mapper;

import com.ruoyi.ldzlsc.domain.ScScheduling;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 排产计划Mapper接口
 *
 * @author ldzl
 * @date 2025-07-24
 */
public interface ScSchedulingMapper {

    /**
     * 查询排产计划列表
     *
     * @param scScheduling 排产计划
     * @return 排产计划集合
     */
    List<ScScheduling> selectScSchedulingList(ScScheduling scScheduling);

    /**
     * 根据工单ID查询排产计划列表
     *
     * @param workOrderId 工单ID
     * @return 排产计划集合
     */
    List<ScScheduling> selectScSchedulingByWorkOrderId(@Param("workOrderId") Long workOrderId);

    /**
     * 新增排产计划
     *
     * @param scScheduling 排产计划
     * @return 结果
     */
    int insertScScheduling(ScScheduling scScheduling);

    /**
     * 批量新增排产计划
     *
     * @param schedulingList 排产计划列表
     * @return 结果
     */
    int batchInsertScScheduling(@Param("list") List<ScScheduling> schedulingList);

    /**
     * 修改排产计划
     *
     * @param scScheduling 排产计划
     * @return 结果
     */
    int updateScScheduling(ScScheduling scScheduling);

    /**
     * 删除排产计划
     *
     * @param schedulingId 排产计划主键
     * @return 结果
     */
    int deleteScSchedulingBySchedulingId(Long schedulingId);

    /**
     * 根据工单ID删除排产计划
     *
     * @param workOrderId 工单ID
     * @return 结果
     */
    int deleteScSchedulingByWorkOrderId(@Param("workOrderId") Long workOrderId);

    /**
     * 批量删除排产计划
     *
     * @param schedulingIds 需要删除的数据主键集合
     * @return 结果
     */
    int deleteScSchedulingBySchedulingIds(Long[] schedulingIds);
}
